<?php

class ChiTietDoanKiemTraController extends BaseController {

    private $ctdkt, $dkt;

    //Ham xay dung
    function __construct() {
        $this->ctdkt = new ChiTietDoanKiemTra();
        $this->dkt = new DoanKiemTra();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
    
    }

    //Phuong thuc hien khung them thong tin
    public function add() {
       
    }

    //Phuong thuc xu ly luu thong tin moi
    public function save() {
        if ($this->ctdkt->validation(Input::all())) {
              $data = array(
                  "ID_DOAN_TT" => Input::get("iddkt"),
                  "ID_CB_TT" => Input::get("idcb"),
                  "ID_CV" => Input::get("idcv"),
                  "ID_CHUC_DANH" => Input::get("idcd"),
                  "TRACH_NHIEM" => Input::get("tn")
              );
              $iddkt = Input::get("iddkt");
              $idcb = Input::get("idcb");
              if(DB::table('ct_doan_tt')->where('ID_DOAN_TT', $iddkt)->where('ID_CB_TT', $idcb)->count()==0) {
                  if ($this->ctdkt->SaveIn($data)) {
                    try {
                        //lay thong tin cua doan kiem tra
                        $row = $this->dkt->GetOne(Input::get("iddkt"));
                        //dem so luong thanh vien hien tai trong doan kiem tra do
                       $num = DB::table('ct_doan_tt')->where('ID_DOAN_TT', $iddkt)->count();
                        //Cap nhat lai so thanh vien trong bang doankt
                        $datadoan = array(
                            "MA_DOAN_TT" => $row->MA_DOAN_TT,
                            "TEN_DOAN_TT" => $row->TEN_DOAN_TT,
                            "SO_TV_TG" => $num
                          );
                        if($this->dkt->StoreIn($datadoan, $iddkt)) {
                            return Redirect::to('ql=dsdoankt')
                                    ->with('success', 'Thêm thành viên vào đoàn kiểm tra hoàn tất!');
                        }
                        return Redirect::to('ql=dsdoankt')
                                    ->with('success', 'Chưa cập nhật dữ liệu số thành viên');
                    } catch (Exception $ex) {
                        return Redirect::to('ql=dsdoankt')
                                    ->with('success', 'Thêm thành viên vào đoàn kiểm tra hoàn tất, nhưng chưa update số thành viên!');
                    }

                }
                return Redirect::to('ql=dsdoankt')
                                ->withInput()
                                ->with('error', 'Thêm thành viên vào đoàn thất bại!');
              }
              return Redirect::to('ql=themtv?iddkt='.Input::get("iddkt"))
                                ->withInput()
                                ->with('error', 'Cán bộ này đã có tham gia vào đoàn rồi!');
          }
          return Redirect::to('ql=dsdoankt')
                          ->withInput()
                          ->with('error', 'Dữ liệu nhập vào không phù hợp!');
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
      
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $id = Input::get("idct");
        $iddkt = Input::get("iddkt");
        $idcb = Input::get("idcb");
        $data = array(
            "ID_DOAN_TT" => $iddkt,
            "ID_CB_TT" => $idcb,
            "ID_CV" => Input::get("idcv"),
            "ID_CHUC_DANH" => Input::get("idcd"),
            "TRACH_NHIEM" => Input::get("tn")
        );
        if ($this->ctdkt->validation(Input::all())) {
            if(DB::table('ct_doan_tt')->where('ID', '<>', $id)->where('ID_DOAN_TT', $iddkt)->where('ID_CB_TT', $idcb)->count()==0) {
                if ($this->ctdkt->StoreIn($data, $id)) {
                    return Redirect::back()
                        ->with("success", "Chỉnh sửa thông tin hoàn tất!");
                }
                return Redirect::back()
                        ->with("error", "Sửa thất bại!");
            }
            return Redirect::back()
                        ->with("error", "Chỉnh sửa thất bại do cán bộ này đã tồn tại trong đoàn rồi!");
        }
        return Redirect::back()
            ->with("error", "Sửa thất bại do dữ liệu không phù hợp!");
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        $id = Input::get('id');
        $idd = Input::get('idd');
        if($this->ctdkt->Remove($id)){
            //update lai so thanh vien cua banng doan kiểm tra
            $ct = DB::table('ct_doan_tt')->where('ID_DOAN_TT', $idd)->get();
            $count = count($ct);
            DB::table('doan_tt')->where('ID', $idd)->update(array('SO_TV_TG' => $count));
            return Redirect::back()
                        ->with('success', 'Xóa cán bộ kiểm tra thành công');
        }
        return Redirect::back()
                        ->with('error', 'Lỗi xóa cán bộ kiểm tra');
    }

    //Phuong thuc tim kiem thong tin xac dinh theo thuc post
    public function search() {
        if (Request::ajax()) {
            $md = Input::get('md');
            try {
                $data = $this->ctdkt->GetOneWithMD($md);
                return Response::json($data);
            } catch (Exception $ex) {
                return Response::json(null);
            }
        }
    }

}
